home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-29 | 5.6 KB | 210 lines | [TEXT/MPS ] |
- ; Version: 1.20
- ; Created: Sunday, October 15, 1989
- ;
- ; File: Processes.a
- ;
- ; Assembler Interface to the Macintosh Libraries
- ; Copyright Apple Computer, Inc. 1989-1991
- ; All Rights Reserved
- ;___________________________________________________________________________
-
- IF &TYPE('__IncludingProcesses__') = 'UNDEFINED' THEN
- __IncludingProcesses__ SET 1
-
- IF &TYPE('__IncludingTraps__') = 'UNDEFINED' THEN ; for _Launch, _OSDispatch
- INCLUDE 'Traps.a'
- ENDIF
-
- ;__________________________________________________________________________________
- ; Process Serial Number (PSN)
- ;__________________________________________________________________________________
- ; various reserved process serial numbers
- kNoProcess EQU 0 ; no process at all
- kSystemProcess EQU 1 ; the system
- kCurrentProcess EQU 2 ; the switched-in process
-
- ; record definition
- ProcessSerialNumber RECORD 0
- highLongOfPSN DS.L 1 ; the upper half
- lowLongOfPSN DS.L 1 ; the lower half
- size EQU *
- ENDR
-
- ; record definition (old style definition)
- highLongOfPSN EQU 0
- lowLongOfPSN EQU 4
-
- ;__________________________________________________________________________________
- ; parameter block passed in the _Launch trap.
- ;__________________________________________________________________________________
-
- ; flags for launchControlFlags field
- launchContinue EQU $4000
- launchNoFileFlags EQU $0800
- launchUseMinimum EQU $0400
- launchDontSwitch EQU $0200
- launchAllow24Bit EQU $0100
- launchInhibitDaemon EQU $0080
-
- ; format of buffer pointed to by launchAppParameters
- AppParameters RECORD 0
- theMsgEvent DS.B $10 ; (evtBlkSize) a HighLevelEvent record
- eventRefCon DS.L 1 ; refcon for the high-level event
- messageLength DS.L 1 ; number of bytes in messageBuffer
- messageBuffer EQU * ; start of message for the high level event
- size EQU *
- ENDR
-
- ; format of buffer pointed to by launchAppParameters (old style definition)
- theMsgEvent EQU 0
- eventRefCon EQU 16
- messageLength EQU 20
- messageBuffer EQU 24
-
- ; parameter block itself
- LaunchParamBlockRec RECORD 0
- reserved1 DS.L 1
- reserved2 DS.W 1
- launchBlockID DS.W 1 ; { = extendedBlock }
- launchEPBLength DS.L 1 ; { = extendedBlockLen }
- launchFileFlags DS.W 1
- launchControlFlags DS.W 1
- launchAppSpec DS.L 1
- launchProcessSN DS ProcessSerialNumber
- launchPreferredSize DS.L 1
- launchMinimumSize DS.L 1
- launchAvailableSize DS.L 1
- launchAppParameters DS.L 1
- size EQU *
- extendedBlockLen EQU size-launchFileFlags
- ENDR
-
- ; parameter block itself (old style definition)
- launchBlockID EQU 6
- launchEPBLength EQU 8
- launchFileFlags EQU 12
- launchControlFlags EQU 14
- launchAppSpec EQU 16
- launchProcessSN EQU 20
- launchPreferredSize EQU 28
- launchMinimumSize EQU 32
- launchAvailableSize EQU 36
- launchAppParameters EQU 40
- SIZEOF_LAUNCHPARAMBLOCKREC EQU 44
- extendedBlockLen EQU SIZEOF_LAUNCHPARAMBLOCKREC - launchFileFlags
-
- ; set launchBlockID to extendedBlock to specify that extensions exist
- ; set launchEPBLength to extendedBlockLen for compatibility
- extendedBlock EQU 19523
-
- ;__________________________________________________________________________________
- ; Definition of the information block returned by _GetProcessInformation.
- ;__________________________________________________________________________________
-
- ; bits in the processMode field
- modeDeskAccessory EQU $00020000
- modeMultiLaunch EQU $00010000
- modeNeedSuspendResume EQU $00004000
- modeCanBackground EQU $00001000
- modeDoesActivateOnFGSwitch EQU $00000800
- modeOnlyBackground EQU $00000400
- modeGetFrontClicks EQU $00000200
- modeGetAppDiedMsg EQU $00000100
- mode32BitCompatible EQU $00000080
- modeHighLevelEventAware EQU $00000040
- modeLocalAndRemoteHLEvents EQU $00000020
- modeStationeryAware EQU $00000010
- modeUseTextEditServices EQU $00000008
-
- ; record returned by GetProcessInformation
- ProcessInfoRec RECORD 0
- processInfoLength DS.L 1
- processName DS.L 1
- processNumber DS ProcessSerialNumber
- processType DS.L 1
- processSignature DS.L 1
- processMode DS.L 1
- processLocation DS.L 1
- processSize DS.L 1
- processFreeMem DS.L 1
- processLauncher DS ProcessSerialNumber
- processLaunchDate DS.L 1
- processActiveTime DS.L 1
- processAppSpec DS.L 1
- size EQU *
- ENDR
-
- ; record returned by GetProcessInformation (old style definition)
- processInfoLength EQU 0
- processName EQU 4
- processNumber EQU 8
- processType EQU 16
- processSignature EQU 20
- processMode EQU 24
- processLocation EQU 28
- processSize EQU 32
- processFreeMem EQU 36
- processLauncher EQU 40
- processLaunchDate EQU 48
- processActiveTime EQU 52
- processAppSpec EQU 56
-
- ;__________________________________________________________________________________
- ; trap macros
- ;__________________________________________________________________________________
-
- MACRO
- _LaunchApplication
- _Launch
- ENDM
-
- MACRO
- _LaunchDeskAccessory
- MOVE.W #$36,-(SP)
- _OSDispatch
- ENDM
-
- MACRO
- _GetCurrentProcess
- MOVE.W #$37,-(SP)
- _OSDispatch
- ENDM
-
- MACRO
- _GetFrontProcess
- PEA $FFFFFFFF
- MOVE.W #$39,-(SP)
- _OSDispatch
- ENDM
-
- MACRO
- _GetNextProcess
- MOVE.W #$38,-(SP)
- _OSDispatch
- ENDM
-
- MACRO
- _GetProcessInformation
- MOVE.W #$3A,-(SP)
- _OSDispatch
- ENDM
-
- MACRO
- _SetFrontProcess
- MOVE.W #$3B,-(SP)
- _OSDispatch
- ENDM
-
- MACRO
- _WakeUpProcess
- MOVE.W #$3C,-(SP)
- _OSDispatch
- ENDM
-
- MACRO
- _SameProcess
- MOVE.W #$3D,-(SP)
- _OSDispatch
- ENDM
-
- ENDIF ; ...already included